f469406b072cf23a1a7ff8265dd1e6dbcc96bc01,src/toniarts/openkeeper/world/creature/pathfinding/MapIndexedGraph.java,MapIndexedGraph,getConnections,#TileData#,66

Before Change


        // No diagonal movement
        Array<Connection<TileData>> connections = new Array<>(4);
        addIfValidCoordinate(tile, tile.getX(), tile.getY() - 1, connections); // North
        addIfValidCoordinate(tile, tile.getX() + 1, tile.getY(), connections); // East
        addIfValidCoordinate(tile, tile.getX(), tile.getY() + 1, connections); // South
        addIfValidCoordinate(tile, tile.getX() - 1, tile.getY(), connections); // West

        return connections;

After Change


        boolean valids[] = new boolean[4];

        valids[0] = addIfValidCoordinate(tile, tile.getX(), tile.getY() - 1, connections); // North
        valids[1] = addIfValidCoordinate(tile, tile.getX() + 1, tile.getY(), connections); // East
        valids[2] = addIfValidCoordinate(tile, tile.getX(), tile.getY() + 1, connections); // South
        valids[3] = addIfValidCoordinate(tile, tile.getX() - 1, tile.getY(), connections); // West

        if (valids[0] && valids[1]) { // North-East
            addIfValidCoordinate(tile, tile.getX() + 1, tile.getY() - 1, connections);
        }
        if (valids[0] && valids[3]) { // North-West
            addIfValidCoordinate(tile, tile.getX() - 1, tile.getY() - 1, connections);
        }
        if (valids[2] && valids[1]) { // South-East
            addIfValidCoordinate(tile, tile.getX() + 1, tile.getY() + 1, connections);
        }
        if (valids[2] && valids[3]) { // South-West
            addIfValidCoordinate(tile, tile.getX() - 1, tile.getY() + 1, connections);
        }

        return connections;